home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MacHack 2000
/
MacHack 2000.toast
/
pc
/
The Hacks
/
Softshoe
/
Lisa's Mac Parts
/
Views
/
Canvas
/
PortMap.h
< prev
Wrap
Text File
|
2000-06-23
|
1KB
|
58 lines
// PortMap.h
#ifndef PortMap_h
#define PortMap_h
#ifndef Rectangle32_h
#include "Rectangle32.h"
#endif
#ifndef Rectangle_h
#include "Rectangle.h"
#endif
class PortMap
{
private:
Rectangle32 offScreen;
Rectangle onScreen;
public:
PortMap( const Rectangle32& offScreenArea,
const Rectangle& onScreenArea )
: offScreen( offScreenArea ),
onScreen( onScreenArea )
{
Assert( offScreen.Size() == UPoint32( onScreenArea.Size() ) );
}
static PortMap Identity( Rectangle r )
{
return PortMap( Rectangle32(r), r );
}
const Rectangle32& OffScreen() const { return offScreen; }
const Rectangle& OnScreen() const { return onScreen; }
int16 HorizontalToScreen( int32 ) const;
int16 VerticalToScreen( int32 ) const;
int32 HorizontalFromScreen( int16 ) const;
int32 VerticalFromScreen( int16 ) const;
PointObject ToScreen( Point32 ) const;
Point32 FromScreen( PointObject ) const;
Rectangle ToScreen( Rectangle32 ) const;
Rectangle32 FromScreen( Rectangle ) const;
void RestrictOnScreen( Rectangle r );
void RestrictOffScreen( Rectangle32 );
void Submap( Rectangle32 );
void SliceHorizontally( Range32 verticalRange );
void SliceVertically( Range32 horizontalRange );
void Scroll( Point32 );
};
#endif